home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / A-An / almanac 201.cpt / swalmanac 2.01 / stack_-1.xml < prev    next >
Extensible Markup Language  |  1992-03-26  |  19KB  |  39 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in.01</name>
  5.     <id>-1</id>
  6.     <cardCount>18</cardCount>
  7.     <cardID>2966</cardID>
  8.     <listID>3777</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><false /></cantAbort>
  12.     <cardSize>
  13.         <width>512</width>
  14.         <height>342</height>
  15.     </cardSize>
  16.     <script>on openStack--initializationglobal force,intl,total,prevUserLevelput the userLevel into prevUserLevelset the userLevel to 5put false into c1if the number of this cd ‚↠1 thenpush cdput true into c1go first cdend ifcreateMenuset the textfont of fld elon to "Helvetica"set the textfont of cd fld Elong to "Helvetica"set the textfont of cd fld Coords to "Helvetica"set the textfont of cd fld Algol to "Helvetica"set the textfont of fld Planet to "Helvetica"set the textsize of fld planet to 18set the textfont of fld Date to "Geneva"set the textfont of fld Pct to "Geneva"set the textfont of fld JD to "Geneva"put 0 into totalset lockscreen to trueset lockmessages to truepush cdgo second cdif number of cd flds >0 then put 1 into totalpop cdset lockscreen to falseset lockmessages to falseput 0 into forceinitialhide message boxput the seconds/86400 + 16480.5 + DSTCheck()/24 into jd2put trunc(jd2+24000000) +1 into jdget the long date-- international stuffput "Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi" into frdaysput empty into intlif first word of it is in frdays then put "Fr" into intlget the dateif it contains "." then put "De" into intlif char 1 of second word of the long date is in "0123456789" and ¬¨intl is empty then put "Au" into intlconvert it to dateItemsput item 2 of it into mput item 3 of it into d-- end intl determinationput false into valif intl = "Au" thenif m<=4 or m>10 then put true into valput trunc(jd-7*trunc(jd/7)) into wif m=10 and d>=w-1 then put true into valif m=4 and (d-w)>=25 then put false into valend ifif intl is empty thenif m>4 and m<=10 then put true into valput trunc(jd-7*trunc(jd/7)) into wif m=4 and d>=w-1 then put true into valif m=10 and (d-w)>=25 then put false into valend ifset hilite of bkgnd button "DST" of cd origin to valif val thenput "D" into char 3 of last word of cd fld coords of cd originelseput "S" into char 3 of last word of cd fld coords of cd originend ifif the short name of this cd is "origin" thenput line 2 of cd fld "Algol" into eclrepeatif ecl > jd2 then exit repeatadd 2.867315 to eclend repeatset numberFormat to "0.0"put "Next minimum of Algol occurs in" && (ecl-jd2)*24 &&¬¨"hours at JD=" into line 1 of cd fld Algolset numberformat to "0.000"put ecl+2400000 after line 1 of cd fld Algolput ecl into line 2 of cd fld Algolend ifset numberformat to "0.############"if c1 then pop cdend openStackon initial-- prompt to deleteglobal usernameif the number of cd btns is 2 and "Mike Kaz" is not in userName thenAnswer "Do you have total occultation data?" with "Yes" or "No"if it is "No" then send mouseup to cd btn "Delete Occultations"end ifif line 1 of cd fld coords is empty thenget 200repeat until it>-90 and it <90Ask "Enter Latitude (S is negative)"end repeatput it into line 1 of cd fld Coordsget 200repeat until it>-180 and it <180Ask "Enter Longitude (W is negative)"end repeatput it into line 2 of cd fld Coordsput abs(trunc(it/15)) into tget -200repeat until it>-180 and it <2000Ask "Enter altitude (in meters)"end repeatput it into line 3 of cd fld Coordsget 200repeat until it>-12 and it <12Ask "Enter hours UT Correction" with tend repeatif line 2 of cd fld coords < 0 thenif "+" is not in it then put "+" before itend ifif line 2 of cd fld coords > 0 thenif "-" is not in it then put "-" before itend ifput it into line 4 of cd fld Coordsget "       "repeat until number of chars of it = 3Ask "Enter 3 letter abbreviation for time zone."end repeatput " ("&it&")" after word 2 of line 4 of cd fld coordsend ifend initialon closeStackglobal prevUserLevelif "Planet" is in the menus then delete menu "Planet"set the userLevel to prevUserLevelpass closeStackend closeStackfunction nDate Uflag,Jflag,n-- Uflag =0 for no UT, 1 for UT-- Jflag =12 for JT, 0 for no JT-- n = # days after given dateglobal intlget the secondsadd 86400*n+3600*(Jflag+Uflag*DSTcheck()) to itconvert it to long dateif intl = "De" thenput char 1 to (offset(".",second word of it)-1) of second word of it ¬¨&& third word of it && last word of it into heelse if intl = "Fr" or intl = "Au" thenput second word of it && third word of it && last word of it into heelseput char 1 to (offset(",",third word of it)-1) of third word of it ¬¨&& second word of it && last word of it into heend ifreturn heend nDateon createMenuif there is a menu "Planet" then exit createMenucreate menu "Planet"put createMenuItems() into menu "Planet" with menuMsg createMenuMsgs()end createMenufunction createMenuItemsget emptyrepeat with i=12 to number of cds of bg "Almanac"put return & short name of cd i after itend repeatreturn "Sun" & return & "Moon" & return & "Mercury" & return & ¬¨"Venus" & return & "Mars" & return & "Jupiter" & return & ¬¨"Saturn" & return & "Uranus" & return & "Neptune" & itend createMenuItemsfunction createMenuMsgsget emptyrepeat with i=12 to number of cds of bg "Almanac"put return & "go cd" && short name of cd i after itend repeatreturn "go cd sun" & return & "go cd moon" & return & "go cd mercury" ¬¨& return & "go cd venus" & return & "go cd mars" & return & ¬¨"go cd jupiter" & return & "go cd saturn" & return & "go cd uranus" ¬¨& return & "go cd neptune" & itend createMenuMsgsfunction JDget the seconds/86400 + 2416480.5 + DSTcheck()/24return itend JDfunction atanq x,yget atan(y/x)if x>0 then add pi to itadd pi to itreturn it mod (2*pi)end atanqfunction rnd10 xreturn round(x*10)/10end rnd10function rnd xif abs(x)>2147483647 thenreturn xelsereturn round(x)end ifend rndfunction DSTcheckget first word of line 4 of cd fld Coords of cd originif first char of it is "+" then delete first char of itif hilite of bkgnd button "DST" of cd originthen put it-1 into tempelse put it into tempreturn tempend DSTcheckfunction frac xreturn x-trunc(x)end fracfunction sgn xif x<0 thenget -1else if x=0 thenget 0else if x>0 thenget 1end ifreturn itend sgnfunction sind nreturn sin((n mod 360)*pi/180)end sindfunction cosd nreturn cos((n mod 360)*pi/180)end cosdfunction tand nreturn tan((n mod 360)*pi/180)end tandon dayOfYear-- returns day, dayUT as number of day in yearglobal dayUT,day,daySecs,intlput the date into daysecsif intl is "De" thenput "31.12." into pJan0else if intl is "Fr" or intl = "Au" thenput "31/12/" into pJan0elseput "12/31/" into pJan0end ifget number of chars of the dateput pJan0 & (char it-1 to it of the date)-1 into Jan0convert daySecs to secondsconvert Jan0 to secondsput (daySecs-Jan0)/86400 into dayput (daySecs-Jan0+3600*DSTcheck())/86400 into dayUTend dayOfYearon UTglobal day,daySecsdayOfYear -- gets daySecsget ((the seconds-daySecs)/3600+DSTcheck())mod 24put trunc(it) into hput trunc(60*(it-h)) into mif m<10 then put "0" before mif h=0 then put "0" before hput "Universal Time = "& h &":" & m into line 1 of fld UTput it into line 2 of fld UTend UTon ST-- Meeusput (trunc(JD())-2451545)/36525 into tput 100.46061837+t*(36000.770053608+t*(.000387933+(t/38710000))) ¬¨into gstget (gst/15+(line 2 of fld UT)*1.00273791 + ¬¨(line 2 of cd fld "coords" of cd origin)/15+24) mod 24put trunc(it) into hput trunc(60*(it-h)) into mif m<10 then put "0" before mif h=0 then put "0" before hput "Sidereal Time = "& h &":" & m into line 1 of fld STput it into line 2 of fld STend STon hm decv,argglobal h,mput trunc(arg) into hput trunc(60*(arg-h)) into mif decv then put abs(m) into mif m<10 then put "0" before mend hmon moonpos arg-- arg is true for %illum calcs.global t,dra,decra,decput pi/180 into facset cursor to busyput 218.3165+481267.8813*t+6.29*sind(134.9+477198.85*t)-1.27*¬¨sind(259.2-413335.38*t)+.66*sind(235.7+890534.23*t)+.21*sind(¬¨269.9+954397.7*t)-.19*sind(357.5+35999.05*t)-.11*sind(186.6+¬¨966404.05*t) into lambdaput 5.13*sind(93.3+483202.03*t)+.28*sind(228.2+960400.87*t)¬¨-.28*sind(318.3+6003.18*t)-.17*sind(217.6-407332.2*t) into beta-- moon radius-- put .9508+.0518*cosd(134.9+477198.85*t)+.0095*cosd(259.2-413335.38*t)¬¨-- +.0078*cosd(235.7+890534.23*t)+.0028*cosd(269.9+954397.7*t) into pip-- put 1/sind(pip) into mrput cosd(beta)*cosd(lambda) into lput .9175*cosd(beta)*sind(lambda)-.3978*sind(beta) into mput .3978*cosd(beta)*sind(lambda)+.9175*sind(beta) into nput atanq(l,m)/fac into draput dra/15 into decraput atan(n/sqrt(1-n*n))/fac into dec--calcs for moon % illum. 1.94 ignore for rise set calcsif arg thenput line 5 of fld pos of cd "Sun" into sraput line 6 of fld pos of cd "Sun" into sdecif (dra-sra+24) mod 24 < 12 thenput "-" into sigelseput "+" into sigend ifput sind(sdec)*sind(dec)+cosd(sdec)*cosd(dec)*cosd(sra-dra) into cpsiput .5*(1-cpsi) into phaseput trunc(phase*100)&"%"&sig into fld pctend ifend moonposon calc forceglobal dayUT,h,m,mode,t,dec,decra,dra,cdata-- calcs ra and dec, force =1 means do it anywayset cursor to 1001dayOfYear -- gets day,dayUTput pi/180 into facget line 3 of fld UTput line 1 of cd fld "Coords" of cd origin into latput line 2 of cd fld "Coords" of cd origin into lonput ((last word of line 1 of fld JD)-2451545)/36525 into tput t/10 into t2if (it=trunc(dayUT) and the optionkey is up) and force=0 thenput line 5 of fld Pos into draput line 6 of fld Pos into decelseset cursor to 1002put trunc(dayUT) into line 3 of fld UTget number of this cdif it >10 and it <= number of last cd of this bg then-- get the vars, put into decra and dec, for asteroidsccalcput char 24 to 25 of cdata into rhput char 27 to 30 of cdata into rmput char 35 to 36 of cdata into dhput char 38 to 39 of cdata into dmput char 57 to 59 of cdata into elput "Magnitude = "&last word of cdata into cd fld magput rh+rm/60 into decraput decra*15 into draput dh+dm/60 into decput line 5 of fld Pos of cd Sun into sraif (sra-dra+360) mod 360 <180 thenput "W" after elelseput "E" after elend ifput el into fld Elonif char 34 of cdata is "-" thenput -dec into decend ifelse if it>2 and it <11 then-- new vsop methodput 23.4392911 -.130042*t into eif short name of this cd is "Sun" thenput .0000000001 into Rvput 0 into Lvput 0 into Bvelseput vsop(t2,"Bterms",3) into Bvput vsop(t2,"Rterms",3) into Rvput vsop(t2,"Lterms",3) into Lvend ifput vsop(t2,"BEterms",1) into Beput vsop(t2,"REterms",3) into Reput vsop(t2,"LEterms",3) into Leput rv*cosd(bv)*cosd(lv)-re*cosd(be)*cosd(le) into xput rv*cosd(bv)*sind(lv)-re*cosd(be)*sind(le) into yput rv*sind(bv)-re*sind(be) into zput sqrt(x*x+y*y+z*z) into rput atan(z/(sqrt(x*x+y*y)))/fac into betaput atanq(x,y)/fac into lambput atanq(cosd(lamb),sind(lamb)*cosd(e)-tand(beta)*sind(e))/fac¬¨into draput sind(beta)*cosd(e)+cosd(beta)*sind(e)*sind(lamb) into sindecput atan(sindec/sqrt(1-sindec*sindec))/fac into decput dra/15 into decraput r into line 2 of fld dmagput trunc(1000*r) into distget number of chars of distput char 1 to (it-3) of dist & "." & char (it-2) to it of dist ¬¨into distput "Earth -"&&short name of this cd&&"Distance ="&&dist&&"A.U."¬¨into line 1 of fld DMagelse  if short name of this cd is "Moon" then-- Moon calcs from A.A.moonpos trueend ifput 100.46061837+t*(36000.770053608+t*(.000387933+(t/38710000))) ¬¨into gstif "Sun" is in short name of this cd then--1.9 now give the user a choicerepeat with ii=20 to 22if hilite of btn id ii then put ii-19 into argtend repeatput item argt of "-.104528,-.207912,-.309017" into valget (val-sind(lat)*sind(dec))/(cosd(lat)*cosd(dec))put abs(atan(sqrt(1-it*it)/it)) into angif -.20791<sind(lat)*sind(dec) then put pi-ang into angput (((dra-lon-gst)/15) mod 24)/1.002738 - DSTCheck() into argput ang/fac/15/1.002738 into deltaget arg-deltaput it into line 3 of cd fld twilighthm false,itampmput "Twilight begins at "& h &":" & m && mode into line 1 of¬¨cd fld twilightget arg+deltaput it into line 4 of cd fld twilighthm false,itampmput "Twilight ends    at "& h &":" & m && mode into line 2 of ¬¨cd fld twilightend ifput dra into line 5 of fld Poshm false,decraput short name of this cd &" R.A. = "& h &"h " & m &"m"into¬¨line 1 of fld Posput dec into line 6 of fld Posput empty into signif dec<0 and dec>-1 then put "-" into signif dec>0 then put "+" into signhm true,decput short name of this cd&" Dec.  = "&sign&h&"¬∞ "&m&"'" ¬¨into line 2 of fld Posget -tand(lat)*tand(dec)put atan(sqrt(1-it*it)/it) into angput dec>0 into d1put lat>0 into d2if d1 is d2 thenadd pi to angend ifput (((dra-lon-gst)/15) mod 24)/1.002738 - DSTCheck() into argput ang/fac/15/1.002738 into deltaget (arg-delta+24) mod 24put arg into line 3 of fld riseput it into line 4 of fld risehm false,itampmput short name of this cd && "Rises at "& h &":" & m && mode ¬¨into line 1 of fld riseget (arg+delta) mod 24put it into line 5 of fld risehm false,itampmput short name of this cd && "Sets  at "& h &":" & m && mode into ¬¨line 2 of fld riseset cursor to 1001end if-- calc alt and az of objectput ((360+15*(line 2 of fld "ST")-dra) mod 360) into LHAput cosd(LHA)*sind(lat)-tand(dec)*cosd(lat) into denput round((180+atanq(den,sind(LHA))/fac) mod 360) into tempput sind(lat)*sind(dec)+cosd(lat)*cosd(dec)*cosd(LHA) into sinaif abs(sina)<1 thenput round(atan(sina/(sqrt(1-sina*sina)))/fac) into altif alt>0 thenput "Az. = "& temp into line 3 of fld Posput "Alt. = " & alt into line 4 of fld Poselseif temp>180then put "W" into temelse put "E" into temput "below " & tem & " horizon" into line 3 of fld Posput empty into line 4 of fld Posend ifelsebeepend ifset cursor to 1end calcfunction vsop t,fldname,nput fld fldname into l0put char 1 of fldname into typerepeat with i=1 to 6put 0 into item i of Lend repeatput 0 into sumrepeat with i=2 to word 1 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 1 of Lif n>1 thenput 0 into sumrepeat with i=(word 1 of l0)+1 to word 2 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 2 of Lend ifif n>2 thenput 0 into sumrepeat with i=(word 2 of l0)+1 to word 3 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 3 of Lend ifif n>3 thenput 0 into sumrepeat with i=(word 3 of l0)+1 to word 4 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 4 of Lend ifif n>4 thenput 0 into sumrepeat with i=(word 4 of l0)+1 to word 5 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 5 of Lend ifif n>5 thenput 0 into sumrepeat with i=(word 5 of l0)+1 to word 6 of l0add word 1 of line i of l0* cos(word 2 of line i of l0+¬¨t*(word 3 of line i of l0)) to sumend repeatput rnd(sum) into item 6 of Lend if-- sum termsput (item 1 of L+t*(item 2 of L+t*(item 3 of L+t*(item 4 of L+¬¨t*(item 5 of L+t*item 6 of L)))))/100000000 into qif type="L" or type="B" thenput (q*180/pi) mod 360 into qif type="B" then if q>180 then subtract 360 from qend ifreturn qend vsopon ccalcglobal cdataput the seconds into tadd DSTcheck()*3600 to tconvert t to dateitemsput item 2 of t into mif m<10 then put space before mput item 3 of t into dif d<10 then put space before dput m&"/"&d&".0/ "&item 1 of t into maskput line 2 of fld planet into fnameif fname is empty then exit ccalcopen file fnameread from file fname until returnput word 1 to 3 of it &"                                 "&¬¨"                " into cdataput false into exprepeat until it is emptyset cursor to busyif mask is in it thenput true into expput number of chars of it into ncif nc<40 thenread from file fname until returnnext repeatend ifput char 19 to nc-1 of it into char 24 of cdataend ifread from file fname until returnend repeatif not exp thenput "File"&&fname&&"has expired..."wait 2 secshide message boxend ifclose file fnameend ccalcon ampmglobal h,mode,intlif intl is empty thenput h into h2if h>11 thensubtract 12 from hput "P.M." into modeelseput "A.M." into modeend ifif h=0 thenput 12 into hend ifelseput empty into modeend ifend ampmon scrfld fname,argif number of lines of cd fld fname > arg thenset style of cd fld fname to scrollingelseset style of cd fld fname to rectangleend ifend scrfld</script>
  17.     <background id="2765" file="background_2765.xml" name="almanac" />
  18.     <background id="3340" file="background_3340.xml" name="Info" />
  19.     <background id="6859" file="background_6859.xml" name="fx" />
  20.     <card id="2966" file="card_2966.xml" marked="false" name="Origin" owner="2765" />
  21.     <card id="7837" file="card_7837.xml" marked="false" name="Moon" owner="2765" />
  22.     <card id="4123" file="card_4123.xml" marked="false" name="Sun" owner="2765" />
  23.     <card id="4449" file="card_4449.xml" marked="false" name="Mercury" owner="2765" />
  24.     <card id="4746" file="card_4746.xml" marked="false" name="Venus" owner="2765" />
  25.     <card id="2204" file="card_2204.xml" marked="false" name="Mars" owner="2765" />
  26.     <card id="3076" file="card_3076.xml" marked="false" name="Jupiter" owner="2765" />
  27.     <card id="4874" file="card_4874.xml" marked="false" name="Saturn" owner="2765" />
  28.     <card id="5249" file="card_5249.xml" marked="false" name="Uranus" owner="2765" />
  29.     <card id="5400" file="card_5400.xml" marked="false" name="Neptune" owner="2765" />
  30.     <card id="11750" file="card_11750.xml" marked="false" name="Select file..." owner="2765" />
  31.     <card id="9018" file="card_9018.xml" marked="false" name="fx" owner="6859" />
  32.     <card id="9537" file="card_9537.xml" marked="false" name="Conjunct" owner="6859" />
  33.     <card id="11225" file="card_11225.xml" marked="false" name="" owner="6859" />
  34.     <card id="10200" file="card_10200.xml" marked="false" name="meteor" owner="6859" />
  35.     <card id="12115" file="card_12115.xml" marked="false" name="Orbits" owner="6859" />
  36.     <card id="8682" file="card_8682.xml" marked="false" name="One" owner="3340" />
  37.     <card id="6160" file="card_6160.xml" marked="false" name="" owner="3340" />
  38. </stack>
  39.